<extend name="Public/base"/>
<block name="content">
<h3 class="col-md-8">数据操作</h3>
<div class="row">
    <div class="col-lg-12">
    	<div class="panel panel-default">
       		<div class="panel-heading ">数据备份
       			<div class="btn-group pull-right">	                
	                <a id="export" class="btn btn-labeled btn-success" href="javascript:;" autocomplete="off">立即备份</a>
        			<a id="optimize" class="btn btn-labeled btn-success" href="<{:U('optimize')}>">优化表</a>
        			<a id="repair" class="btn btn-labeled btn-success" href="<{:U('repair')}>">修复表</a>
	         	</div>      			
       		</div>
    		<div class="table-responsive">
		        <form id="export-form" method="post" action="<{:U('export')}>">
		            <table class="table table-striped table-bordered table-hover"> 
		                <thead>
		                    <tr>
		                    	<th style="width: 5%" class="check-all">
                          			<div data-toggle="tooltip" data-title="全选" class="checkbox c-checkbox">
                             			<label>
                                			<input type="checkbox">
                                			<span class="fa fa-check"></span>
                             			</label>
                          			</div>
                       			</th> 
		                        <th>表名</th>
		                        <th width="120">数据量</th>
		                        <th width="120">数据大小</th>
		                        <th width="160">创建时间</th>
		                        <th width="160">备份状态</th>
		                        <th width="120">操作</th>
		                    </tr>
		                </thead>
		                <tbody>
		                    <volist name="list" id="table">
		                        <tr>  
		                        	<td>
                          				<div class="checkbox c-checkbox">
                                			<input class="ids" checked="chedked" type="checkbox" name="tables[]" value="<{$table.name}>">
                                			<span class="fa fa-check"></span>
                          				</div>
                       				</td>
		                            <td><{$table.name}></td>
		                            <td><{$table.rows}></td>
		                            <td><{$table.data_length|format_bytes}></td>
		                            <td><{$table.create_time}></td>
		                            <td class="info">未备份</td>
		                            <td class="action">
		                                <a class="ajax-get no-refresh" href="<{:U('optimize?tables='.$table['name'])}>">优化表</a>&nbsp;
		                                <a class="ajax-get no-refresh" href="<{:U('repair?tables='.$table['name'])}>">修复表</a>
		                            </td>
		                        </tr>
		                    </volist>
		                </tbody>
		            </table>
		        </form>
    		</div>
    		<!-- 结束 表格 -->
    		<div class="panel-footer">
    			<div class="row">
					<ul class="pagination">
					<{$_page}>
					</ul>
				 </div>
            </div>    		
    	</div>
	</div>
</div>
</block>

<block name="script">
    <script type="text/javascript">
    highlight_subnav("<{:U('Config/group')}>","<{:U('Database/index/type/export')}>");
    (function($){
        var $form = $("#export-form"), $export = $("#export"), tables
            $optimize = $("#optimize"), $repair = $("#repair");

        $optimize.add($repair).click(function(){
            $.post(this.href, $form.serialize(), function(data){
                if(data.status){
                    topAlert(data.info,'success');
                } else {
                    topAlert(data.info,'error');
                }
            }, "json");
            return false;
        });

        $export.click(function(){
            $export.parent().children().addClass("disabled");
            $export.html("正在发送备份请求...");
            $.post(
                $form.attr("action"),
                $form.serialize(),
                function(data){
                    if(data.status){
                        tables = data.tables;
                        $export.html(data.info + "开始备份，请不要关闭本页面！");
                        backup(data.tab);
                        window.onbeforeunload = function(){ return "正在备份数据库，请不要关闭！" }
                    } else {
                        topAlert(data.info,'alert-error');
                        $export.parent().children().removeClass("disabled");
                        $export.html("立即备份");
                    }
                },
                "json"
            );
            return false;
        });

        function backup(tab, status){
            status && showmsg(tab.id, "开始备份...(0%)");
            $.get($form.attr("action"), tab, function(data){
                if(data.status){
                    showmsg(tab.id, data.info);

                    if(!$.isPlainObject(data.tab)){
                        $export.parent().children().removeClass("disabled");
                        $export.html("备份完成，点击重新备份");
                        window.onbeforeunload = function(){ return null }
                        return;
                    }
                    backup(data.tab, tab.id != data.tab.id);
                } else {
                    topAlert(data.info,'alert-error');
                    $export.parent().children().removeClass("disabled");
                    $export.html("立即备份");
                }
            }, "json");

        }

        function showmsg(id, msg){
            $form.find("input[value=" + tables[id] + "]").closest("tr").find(".info").html(msg);
        }
    })(jQuery);
    </script>
</block>